Javascript 覆盖空格和元素so的Div看起来不可读取(Python Selenium)
请帮帮我,因为这快把我逼疯了 这应该是简单的-单击一个元素。但就我的一生而言,我找不到一个方法来做这件事 我可以用我尝试过的每个方法找到它,但我似乎无法单击它。我试过按类名,按XPath类,按XPath跨度文本,我试过用javascript强制点击。没有什么。这个蓝色的OK按钮看起来不可点击 我开始认为这可能是因为div的形状,我将在一张图片中附加它。看起来div也在按钮的左边,所以可能只是单击按钮旁边的空白区域,也恰好被div覆盖(无论出于何种原因)?如果是,有没有办法指定单击div的哪个部分 以下是我尝试过的:Javascript 覆盖空格和元素so的Div看起来不可读取(Python Selenium),javascript,python,html,python-3.x,selenium,Javascript,Python,Html,Python 3.x,Selenium,请帮帮我,因为这快把我逼疯了 这应该是简单的-单击一个元素。但就我的一生而言,我找不到一个方法来做这件事 我可以用我尝试过的每个方法找到它,但我似乎无法单击它。我试过按类名,按XPath类,按XPath跨度文本,我试过用javascript强制点击。没有什么。这个蓝色的OK按钮看起来不可点击 我开始认为这可能是因为div的形状,我将在一张图片中附加它。看起来div也在按钮的左边,所以可能只是单击按钮旁边的空白区域,也恰好被div覆盖(无论出于何种原因)?如果是,有没有办法指定单击div的哪个部分
browser.find_element_by_class_name('ok')
browser.find_element(By.XPATH, "//div[@class='ok']")
browser.execute_script("arguments[0].click();",
WebDriverWait(browser, 10).until(EC.element_to_be_clickable
((By.Class, "ok"))))
browser.FindElement(By.XPath("//div[@class='ok']/span[@class='OK']"));
您需要以
标记的文本为目标:
xpath = "//div[@class='ok']/span[contains(., 'OK')]";
browser.find_element_by_xpath(xpath);
我得到的元素仍然是不可交互的错误
您需要“等待”该元素可单击。浏览器和Selenium之间的竞争条件可能会导致元素在您能够单击它之前就在DOM中,例如,如果您有一个使对象淡入淡出的动画
xpath = "//div[@class='ok']/span[contains(., 'OK')]";
wait = WebDriverWait(browser, 10);
okButton = wait.until(EC.element_to_be_clickable(xpath));
okButton.click();
您需要以
标记的文本为目标:
xpath = "//div[@class='ok']/span[contains(., 'OK')]";
browser.find_element_by_xpath(xpath);
我得到的元素仍然是不可交互的错误
您需要“等待”该元素可单击。浏览器和Selenium之间的竞争条件可能会导致元素在您能够单击它之前就在DOM中,例如,如果您有一个使对象淡入淡出的动画
xpath = "//div[@class='ok']/span[contains(., 'OK')]";
wait = WebDriverWait(browser, 10);
okButton = wait.until(EC.element_to_be_clickable(xpath));
okButton.click();
您使用的xpath是什么?您能分享您用xpath“//span[.='OK']”尝试过的tracehave吗?请分享你迄今为止所做的尝试?这是否回答了你的问题?Apologies,我将用我尝试过的方法编辑问题try://*[@class='ok']/[contains(text(),'ok')]您使用的xpath是什么?您能分享您用xpath“//span[.='OK']”尝试过的tracehave吗?请分享你迄今为止所做的尝试?这是否回答了你的问题?A博客,我将用我尝试过的内容编辑这个问题://*[@class='ok']/[contains(text(),'ok')]]@bboooyintheuk:我更新了我的答案。您需要使用WebDriverWait对象等待元素可单击后再单击它。嘿,必须稍微调整代码,但我得到
TypeError:find_element()参数在*之后必须是iterable,而不是WebElement
?我的代码:xpath=browser.find_element_by_xpath(//div[@class='ok']]/span[contains(,'ok')]);wait=WebDriverWait(浏览器,10);okButton=wait.until(EC.element可点击(xpath));OK按钮。单击()代码>谢谢。我修正了我的问题。我写的Python不多。@bboooyintheuk:我更新了我的答案。您需要使用WebDriverWait对象等待元素可单击后再单击它。嘿,必须稍微调整代码,但我得到TypeError:find_element()参数在*之后必须是iterable,而不是WebElement
?我的代码:xpath=browser.find_element_by_xpath(//div[@class='ok']]/span[contains(,'ok')]);wait=WebDriverWait(浏览器,10);okButton=wait.until(EC.element可点击(xpath));OK按钮。单击()代码>谢谢。我修正了我的问题。我不怎么写Python。