Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我的点击不适用于手机模拟?_Java_Html_Css_Selenium_Mobileemulation - Fatal编程技术网

Java 为什么我的点击不适用于手机模拟?

Java 为什么我的点击不适用于手机模拟?,java,html,css,selenium,mobileemulation,Java,Html,Css,Selenium,Mobileemulation,我正在测试一个web应用程序。我使用Selenium+Java。我想在桌面和手机上测试同样的东西。桌面上的测试还可以,但当我使用mobileEmulation(Nexus5)并在一个站点上进行相同的测试时,测试正在下降。日志说web驱动程序进行了单击(没有错误),但实际上并没有这样做。我毫无问题地点击了下一个站点,但当我想点击上一个站点时,它无法完成 我尝试了不同的等待,比如: WebDriverWait wait = new WebDriverWait(driver,10); wait.unt

我正在测试一个web应用程序。我使用Selenium+Java。我想在桌面和手机上测试同样的东西。桌面上的测试还可以,但当我使用mobileEmulation(Nexus5)并在一个站点上进行相同的测试时,测试正在下降。日志说web驱动程序进行了单击(没有错误),但实际上并没有这样做。我毫无问题地点击了下一个站点,但当我想点击上一个站点时,它无法完成

我尝试了不同的等待,比如:

WebDriverWait wait = new WebDriverWait(driver,10);
wait.until(ExpectedConditions.elementToBeClickable(element));
wait.until(ExpectedConditions.visibilityOfAllElements(element));
或:

不同的选择器:

 @FindBy(xpath="/html[1]/body[1]/section[1]/main[1]/div[1]/div[1]/div[3]/div[2]/div[1]/ul[1]/li[2]/a[1]")

 @FindBy(xpath = "//a[contains(text(),'Poprzednia')]")

 @FindBy(css = "body.indexpage:nth-child(2) section.content_wrap.container-fluid:nth-child(2) main.content_data.col-md-12 div.content_data div.dataTables_wrapper.form-inline.dt-bootstrap.no-footer:nth-child(2) div.row:nth-child(3) div.col-sm-7 div.dataTables_paginate.paging_simple_numbers ul.pagination li.paginate_button.previous:nth-child(1) > a:nth-child(1)")
不同的点击:

this.element.click();

JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", element);

Actions builder = new Actions(driver);
builder.moveToElement(poprzedniaStrona).click(element);
builder.perform();
我认为问题在于网站的风格(文本对齐)正在改变。我很想像在deskop版本上那样更改它,但这不起作用:

JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].setAttribute('style', 'text-align: right;')", test1);
其中:

@FindBy(xpath = "//div[@id='sg-datatables-pllistypl_datatable_paginate']")
WebElement test1;
HTML(我要单击的元素):


HTML(具有不同样式的元素):

浏览器:Chrome 75

铬驱动程序:75.0.3770.90

我将非常感谢您的帮助:)


上一个按钮似乎已禁用。selenium只在启用的元素上工作。Ups,我粘贴了错误的ss。右侧未禁用。请尝试使用另一种策略,如:
partialLinkText('Poprzednia')
linkText('Poprzednia')
。不幸的是,同样的错误
@FindBy(xpath = "//div[@id='sg-datatables-pllistypl_datatable_paginate']")
WebElement test1;
<a href="#" aria-controls="sg-datatables-pllistypl_datatable" data-dt-idx="0" tabindex="0" style="">Poprzednia</a>
<div class="dataTables_paginate paging_simple_numbers" id="sg-datatables-pllistypl_datatable_paginate"><ul class="pagination"><li class="paginate_button previous disabled" id="sg-datatables-pllistypl_datatable_previous" style=""><a href="#" aria-controls="sg-datatables-pllistypl_datatable" data-dt-idx="0" tabindex="0" style="">Poprzednia</a></li><li class="paginate_button active"><a href="#" aria-controls="sg-datatables-pllistypl_datatable" data-dt-idx="1" tabindex="0">1</a></li><li class="paginate_button "><a href="#" aria-controls="sg-datatables-pllistypl_datatable" data-dt-idx="2" tabindex="0">2</a></li><li class="paginate_button next" id="sg-datatables-pllistypl_datatable_next"><a href="#" aria-controls="sg-datatables-pllistypl_datatable" data-dt-idx="3" tabindex="0">Następna</a></li></ul></div>