在Python/Selenium中是否启用函数
我正在尝试创建一个脚本,刷新页面,直到为某个项目(在我的例子中是GPU)启用BUY Btn。 对这件事很陌生,我不知道我做错了什么 提前谢谢在Python/Selenium中是否启用函数,python,selenium,Python,Selenium,我正在尝试创建一个脚本,刷新页面,直到为某个项目(在我的例子中是GPU)启用BUY Btn。 对这件事很陌生,我不知道我做错了什么 提前谢谢 不购买按钮时: 尝试: addButton=浏览器。通过类名称(“addToCartLabel\uYzavx”)查找元素。是否启用() 如果addButton.is_enable(): addButton.click() else:browser.refresh() 除: addToCartBtn=addButton=browser。通过类名称(“addT
不购买按钮时:
尝试:
addButton=浏览器。通过类名称(“addToCartLabel\uYzavx”)查找元素。是否启用()
如果addButton.is_enable():
addButton.click()
else:browser.refresh()
除:
addToCartBtn=addButton=browser。通过类名称(“addToCartLabel\uYzavx”)查找元素
打印(“BtnClick”)
addToCartBtn.单击()
buyButton=True
在声明“addButton”时,您已经添加了“.is_enabled()”
您的if条件的读数类似于“addButton.is_enabled().is_enabled()
如果删除第一个“.is_enabled()”,它应该可以工作
try:
addButton = browser.find_element_by_class_name("addToCartLabel_YZaVX")
if addButton.is_enabled():
addButton.click()
else: browser.refresh()
这个怎么样
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
try:
addButton=WebDriverWait(browser,5).until(EC.element_to_be_clickable((By.CLASS_NAME,"addToCartLabel_YZaVX")))
addButton.click()
except :
print("Couldn't find the button, doing some other action here)
#do other stuff here...
pass
您正在检查按钮是否使用Selenium的
is_enabled()
启用,该按钮将返回布尔值
所以当你这么做的时候
addButton=browser.find_element_by_class_name(“addToCartLabel_YZaVX”)。是否启用()
如果调用之前指定的按钮已启用()
方法实际上已启用(True)或未启用(False),则可以预期addButton
为True
或False
因此,在下一行中,您将检查布尔值是否已启用,但它将不起作用:)
让我们只更改一些名称并进行一些自我解释的编码:
不购买按钮时:
尝试:
addButton=浏览器。通过类名称(“addToCartLabel\uYzavx”)查找元素
isAddButtonEnabled=addButton.is_已启用
如果isAddButtonEnabled():
addButton.click()
else:browser.refresh()
除:
addToCartBtn=addButton=browser。通过类名称(“addToCartLabel\uYzavx”)查找元素
打印(“BtnClick”)
addToCartBtn.单击()
buyButton=True
这里有一个无限循环,等待元素被点击10秒,否则刷新页面。还有4个同名的类
进口
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
你忘了问一个问题;)嗯,我的代码还有其他问题。它将进入例外部分,即使BTN是禁用的。thx BTW类名可能没有正确定义…尝试单击添加到购物车BTNthx,但它是一个缺货项目,我想刷新,直到Buy BTN启用。我不认为在这种情况下,code工作。产品:好吧,我当然不会为你写完整的代码……检查按钮名称与其他页面上的按钮是否有效,将其放入一个循环中,你可以刷新页面,然后运行try/except。顶部的“from…”内容只是为了帮助你理解导入要求。
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC