簡體   English   中英

當它說列表沒有屬性“點擊”時如何點擊列表

[英]How to click on the list when it said the list has no attribute "click"

from selenium import webdriver  
import time
from selenium.webdriver.common.keys import Keys  
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import random

driver = webdriver.Chrome('ChromeDriver')
driver.get("https://devbusiness.tunai.io/login")
time.sleep(2)
driver.maximize_window()

#log in credentials
username = driver.find_element(By.NAME, "loginUsername");
username.send_keys("dayon@tunai");

password = driver.find_element(By.NAME, "loginPassword");
password.send_keys("12341234");

login = driver.find_element(By.XPATH,"//*[@id='app']/div/div/div/div/div/div[2]/form/div[4]/button");
login.submit();
time.sleep(3)

driver.get("https://devbusiness.tunai.io/dashboard/my_salon_user")
time.sleep(3)

randomUsername = random.choice(["dayon.salon3@tunai","dayonmanager@tunai"])
driver.find_element(By.XPATH, "//tbody[@role='rowgroup']/tr[@role='row']/td/a[text()='"+ randomUsername +"']").click()
print("Username selected: ", randomUsername)
time.sleep(5)

driver.find_element(By.XPATH,"//*[@id='page-content']/div/div[3]/div/div[2]/div/div/div[2]/div/div[1]/header/a").click()
time.sleep(5)

driver.find_element(By.XPATH,"//*[@id='accAddPermission']/div/div[1]/form/div[1]/div/button").click()
time.sleep(5)

randomList = random.choice(["MY SALON > Member","SALON REPORT > [ALL]","SALON MENU > [ALL]","OUTLET SETTING > [ALL]","MY SALON > User > [ALL]","MY SALON > User > Permission > [ALL]","MY SALON > User > Delete User","MY SALON > User > Outlet Permission > [ALL]","MY SALON > User > Outlet Permission > Update Outlet Permission","MY SALON > User > Add User","OUTLET SETTING > Outlets > [ALL]"])
element = driver.find_elements(By.CLASS_NAME,"custom-control custom-switch mt-2 mb-2")
for element in randomList:
 element.click()
 time.sleep(3)
 print("List selected: ", randomList)

 driver.find_element(By.XPATH,"//*[@id='accKey']")
 time.sleep(3)
 driver.close()

這些是我想隨機選擇的列表。 當它想點擊所選列表並返回 AttributeError: 'str' object has no attribute 'click' 時,代碼出現錯誤。 我使用 driver.find_elements 因為要搜索列表但由於“元素”而無法單擊。 還有什么其他可能的解決方案?

問題是您從列表中隨機選擇了一個選項,但沒有正確使用它。 用法random.choice(element)不正確。

您可以使用以下代碼作為您所面臨問題的參考。 這里//tbody[@role='rowgroup']/tr[@role='row']/td[2]/a是包含所有用戶名字段(加上一些其他元素)的表格單元格的 xpath

randomUsername = random.choice(["dayon@tunai","dayon.salon3@tunai","dayonmanager@tunai"])
driver.find_element(By.XPATH, "//tbody[@role='rowgroup']/tr[@role='row']/td/a[text()='"+randonUsername+"']").click()

在第一行中,這將首先從您的列表中創建一個具有隨機值的變量。 然后它將通過 xpath 中的隨機選項為表格單元格傳遞變量並單擊它。 將打開一個帶有“阻止的權限”的新對話框

要單擊table列出的特定username ,您需要使用唯一的xpath才能單擊。

登錄后添加此代碼。

driver.get("https://devbusiness.tunai.io/dashboard/my_salon_user")
time.sleep(3)
randomtext = random.choice(["dayon@tunai","dayon.salon3@tunai","dayonmanager@tunai"])
element = driver.find_element(By.XPATH,"//table[@id='__BVID__74']/tbody//tr//td[2]//a[text()='{}']".format(randomtext))
element.click()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM