单击下拉菜单元素在Pycharm中起作用,但在服务器中不起作用

发布于 2025-01-23 19:47:22 字数 362 浏览 0 评论 0 原文

有一个下拉菜单,我需要单击列表中的2个项目。因此,它可以在Pycharm中完美工作,但在服务器上不工作。

代码试验:

goods_count = WebDriverWait(driver, 5).until(EC.presence_of_element_located((By.XPATH, '/html/body/div[6]/div[3]/div/div/div/div/main/div/div[*]/div[3]/div/div/div/ul/li[3]')))
driver.execute_script("arguments[0].click();", goods_count)`

Pycharm和服务器端有什么区别?

There is a dropdown menu in which I need to click on the 2 item in list. So it works perfectly in Pycharm but not on server.

Code trials:

goods_count = WebDriverWait(driver, 5).until(EC.presence_of_element_located((By.XPATH, '/html/body/div[6]/div[3]/div/div/div/div/main/div/div[*]/div[3]/div/div/div/ul/li[3]')))
driver.execute_script("arguments[0].click();", goods_count)`

What could be the difference between Pycharm and server side?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

挽手叙旧 2025-01-30 19:47:22

要单击任何 单击 元素,而不是 emage_em> success_of_element_lement_located() em> 理想情况下,您需要诱导 webdriverwait ,您可以使用以下定位器策略

goods_count = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '/html/body/div[6]/div[3]/div/div/div/div/main/div/div/div[3]/div/div/div/ul/li[3]'))) 
driver.execute_script("arguments[0].click();", goods_count)

driver.execute_script("arguments[0].click();", WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '/html/body/div[6]/div[3]/div/div/div/div/main/div/div/div[3]/div/div/div/ul/li[3]'))))

/A/54194511/7429447“> element_to_be_clickable ( >:您必须添加以下导入:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

To click on any clickable element instead of presence_of_element_located() ideally you need to induce WebDriverWait for the element_to_be_clickable() and you can use the following locator strategy:

goods_count = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '/html/body/div[6]/div[3]/div/div/div/div/main/div/div/div[3]/div/div/div/ul/li[3]'))) 
driver.execute_script("arguments[0].click();", goods_count)

In a single line:

driver.execute_script("arguments[0].click();", WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '/html/body/div[6]/div[3]/div/div/div/div/main/div/div/div[3]/div/div/div/ul/li[3]'))))

Note: You have to add the following imports :

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文